/**
 * 商品分类服务
 * 提供分类数据获取功能
 */

import http from './api.js'

// 本地分类数据（根据数据库 food_categories 表）
const LOCAL_CATEGORIES = [
    { id: 1, name: '热菜', sortOrder: 1, status: 1 },
    { id: 2, name: '凉菜', sortOrder: 2, status: 1 },
    { id: 3, name: '汤品', sortOrder: 3, status: 1 },
    { id: 4, name: '主食', sortOrder: 4, status: 1 },
    { id: 5, name: '饮品', sortOrder: 5, status: 1 },
    { id: 6, name: '甜品', sortOrder: 6, status: 1 }
]

const categoryService = {
    /**
     * 获取所有分类列表
     * GET /api/v1/categories
     * 
     * 根据后端文档，此接口不需要认证（公开接口）
     */
    getCategories: async () => {
        try {
            const response = await http.get('/categories', {}, {
                needAuth: false  // 根据后端文档，不需要认证
            })

            console.log('✅ 分类数据已从后端API获取')
            return response
        } catch (error) {
            console.error('获取分类列表失败，使用本地兜底数据:', error)

            // 兜底：返回本地数据
            return {
                code: 200,
                message: '使用本地数据',
                data: LOCAL_CATEGORIES
            }
        }
    },

    /**
     * 获取分类名称映射
     * 返回 { id: name } 格式的对象
     */
    getCategoryMap: async () => {
        try {
            const response = await categoryService.getCategories()
            const categories = response.data || response || []

            const map = {}
            categories.forEach(category => {
                map[category.id] = category.name
            })

            return map
        } catch (error) {
            console.error('获取分类映射失败:', error)
            return {}
        }
    }
}

export default categoryService

